//
// Created by tuzes on 6/2/24.
//
#include "vector"
#include <functional>

#ifndef CALLABLETEST_CALLABLETHREAD_H
#define CALLABLETEST_CALLABLETHREAD_H


using std::function;
using std::vector;

namespace callable::thread {

    class CallableThread {
    public:
        void execMethodAll(function<void()> callable);
        static void methodA();
        static void methodB();
        static void methodC();
        void ExecMethodByParam();
    private:
        vector<function<void()>> execMethods;
        void fillVec();
        void forkProc(function<void()> callable);
    };


} // thread
// callable

#endif //CALLABLETEST_CALLABLETHREAD_H